<?php
/**
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled with this
 * package in the file LICENSE.txt. It is also available through the
 * world-wide-web at this URL: http://dragonjsonserver.de/license. If you did
 * not receive a copy of the license and are unable to obtain it through the
 * world-wide-web, please send an email to license@dragonjsonserver.de. So we
 * can send you a copy immediately.
 *
 * @copyright Copyright (c) 2012 DragonProjects (http://dragonprojects.de)
 * @license http://framework.zend.com/license/new-bsd New BSD License
 * @author Christoph Herrmann <developer@dragonjsonserver.de>
 */
?>
<ul>
    <li>Cronjobs sind Aktionen die in regelmäßigen Abständen wiederholt ausgeführt werden</li>
</ul>
<h3>Paket einrichten</h3>
<ul>
    <li>Erstellen der Konfigurationsdatei '/config/dragonx/cronjob/cronjob.php' durch umbenennen und anpassen der 'cronjob.php.template' Datei</li>
    <li>
        Das Securitytoken soll sicherstellen dass nur der Cronjob die Aktionen ausführt und nicht ein anderer Benutzer der API
<pre>return array(
    'securitytoken' =&gt; '%securitytoken%',
);</pre>
    </li>
    <li>Erstellung eines minütlichen Cronjobs auf dem Webserver der den Service 'DragonX.Cronjob.Service.Cronjob.executeCronjobs' aufruft und das Securitytoken übergibt</li>
    <li>Als Alternative zu einem POST Request auf den Service kann auch die '/cron.php' mit dem Securitytoken als GET Parameter aufgerufen werden</li>
</ul>
<h3>Erstellung eines Cronjobs</h3>
<ul>
    <li>Um einen Cronjob zu erstellen muss ein Plugin des Interfaces 'DragonX_Cronjob_Plugin_Cronjob_Interface' implementiert</li>
    <li>%intervall% ist die Anzahl an Minuten die mindestens zwischen zwei Cronjobaufrufen liegen muss</li>
    <li>Der Intervall wird immer an der Uhrzeit angepasst, daher stündliche Cronjobs laufen immer zur vollen Stunde</li>
    <li>%offset% ist die Anzahl an Minuten die von der Uhrzeit abgewichen wird, daher stündliche Cronjobs mit einem Offset von 30 laufen immer zur vollen halben Stunde</li>
    <li>
        'execute()' wird zur Ausführung des Cronjobs aufgerufen
<pre>class %packagenamespace%_%packagename%_Plugin_%pluginname%
    implements DragonX_Cronjob_Plugin_Cronjob_Interface
{
    public function getIntervall()
    {
        return %intervall%;
    }

    public function getOffset()
    {
        return %offset%;
    }

    public function execute()
    {}
}</pre>
    </li>
</ul>
<h3>Überwachung der Cronjobs</h3>
<ul>
    <li>In der Tabelle 'dragonx_cronjob_record_cronjob' wird der letzte Zeitpunkt und die Anzahl der Aufrufe aller Cronjobs gespeichert</li>
</ul>
